(function(){
    // 描述一个对象的类型
    type myType={
        name:string;
        age:number;
    }

    // 接口可以定义多次，类型不能定义多次
    // type myType={
    //     name:string;
    //     age:number;
    // }

    const obj:myType={
        name:'孙悟空',
        age:18,
    }

    // 接口用来定义一个类结构，用来定义一个类中应该包含哪些属性和方法
    // 可以当成类型声明去使用
    interface myInterface{
        name:string;
        age:number;
    }

    // 报错，因为接口是用来定义一个类结构，所以不能直接赋值
    // const obj:myInterface={
    //     name:'孙悟空',
    //     age:18,
    // }

    // 接口可以定义多次
    interface myInterface{
        gender:string;
    }

    // 接口中的属性不能有实际的值
    // 接口中的方法不能有实际的方法体
    // 只定义结构，不考虑实际的值
    interface myInter{
        name:string;

        sayHello():void;
    }

    // 实现接口
    // 实现接口就是使类满足接口的要求
    class MyClass implements myInter{
        name:string;

        constructor(name:string){
            this.name=name;
        }

        sayHello():void{
            console.log('Hello,我是孙悟空');
        }
    }
})()